home *** CD-ROM | disk | FTP | other *** search
/ Nebula 2 / Nebula Two.iso / NextAnswers / EOF2.0_PDO4.0_Example / fetch_main.m next >
Text File  |  1996-03-27  |  2KB  |  68 lines

  1.  
  2. #import <EOAccess/EOAccess.h>
  3.  
  4. void fetch(void);
  5. void usage(void);
  6.  
  7. int main (int argc, const char *argv[])
  8. {
  9.    NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
  10.  
  11.    NS_DURING
  12.  
  13.      fetch();
  14.  
  15.    NS_HANDLER
  16.  
  17.      NSLog(@"%@", [localException reason]);
  18.  
  19.    NS_ENDHANDLER
  20.  
  21.    [pool release];
  22.    exit(0);       // insure the process exit status is 0
  23.    return 0;      // ...and make main fit the ANSI spec.
  24. }
  25.  
  26. void fetch(void)
  27. {
  28.   NSString *modelPath = [[NSUserDefaults standardUserDefaults] stringForKey:@"model"];
  29.   NSString *entityName = [[NSUserDefaults standardUserDefaults] stringForKey:@"entity"];
  30.  
  31.   EOModel *model;
  32.   EOEditingContext *context;
  33.   EODatabaseDataSource *dataSource;
  34.   NSArray *results;
  35.  
  36.   if(!modelPath || ![modelPath length] || !entityName || ![entityName length]) {
  37.     usage();
  38.     return;
  39.   }
  40.     
  41.   model = [[EOModel alloc] initWithContentsOfFile:modelPath];
  42.  
  43.   if(!model) {
  44.     NSLog(@"Unable to load model %@", modelPath);
  45.     return;
  46.   }
  47.  
  48.   if(![model entityNamed:entityName]) {
  49.     NSLog(@"Entity %@ not found in model %@", entityName, modelPath);
  50.     return;
  51.   }
  52.     
  53.   [[EOModelGroup defaultGroup] addModel:model];
  54.  
  55.   context = [[EOEditingContext alloc] initWithParentObjectStore:[EOObjectStoreCoordinator defaultCoordinator]];
  56.  
  57.   dataSource = [[EODatabaseDataSource alloc] initWithEditingContext:context entityName:entityName];
  58.   
  59.   results = [dataSource fetchObjects];
  60.   
  61.   NSLog(@"Result: %@", results);
  62. }
  63.  
  64. void usage(void)
  65. {
  66.     NSLog(@"Usage: fetch -model <full path for an eomodeld file> -entity <entity name>");
  67. }
  68.